水平居中
inline/inline-*
- 父级是块级元素,
text-align:center
;
块级元素
方式一:子元素
width
+margin-left/right:auto
;方式二:inline-block,父级
text-align:center
,子元素display:inline-block
;方式三:flexbox,父级
display:flex
+justify-content:center
;
垂直居中
inline/inline-*
单行
- 方式一:
padding-top
和padding-bottom
相同; - 方式二:
height
和line-height
相同,white-space: nowrap
;
- 方式一:
多行
- 方式一:利用
table
+td
,td
设置vertical-align: middle
; - 方式二:父级
display: table
,子元素display: table-cell
+vertical-align: middle
; - 方式三:flexbox,
display: flex
+justify-content: center
+flex-direction: column
; - 方式四:flexbox,
display: flex
+align-items: center
;
- 方式一:利用
块级元素
- 已知
height
- 父级
position: relative
; - 子元素
position: absolute
+top: 50%
+margin-top:-1/2*height
;
- 父级
- 未知
height
- 父级
position: relative
; - 子元素
position: absolute
+top: 50%
+transform: translateY(-50%)
;
- 父级
- 同
垂直居中
中inline/inline-*
的多行; - 使用
grid
;